iT邦幫忙

DAY 22
1

實戰 Java SE 7 系列 第 22

Project Coin - try-with-resource 語法 續

  • 分享至 

  • xImage
  •  

那 Java 是如何知道/判斷,在 try-with-resource 陳述式裡的物件是可以關閉(close)的呢?
在 Java SE 7 裡有一個新的介面(Interface)叫 java.lang.AutoCloseable,裡面只定義了一個 close 的方法,所以實作這個介面的類別,其所生成的物件,都可以放在 try-with-resource 陳述式裡執行。所以我們來自己寫一個實作 java.lang.AutoCloseable 的類別:

package idv.jacky.ironman4.day22;

public class MyResource1 implements AutoCloseable{

 @Override
 public void close() throws Exception {
 System.out.println("Close resource 1.");
 }
}

我們把實作 java.lang.AutoCloseable 的類別命名為 MyResource1,然後實作 close 這個方法,裡面只叫 Java 印出 "Close resource 1" 這個字串。接著我們來看看怎麼使用它:

package idv.jacky.ironman4.day22;

public class Day22Example1 {

 public static void main (String[] args) throws Exception {
 try (MyResource1 r1 = new MyResource1()) {
 System.out.println("Do something...");
 }
 }
}

就像昨天的範例一樣,我們在 try-with-resource 陳述式裡宣告了一個 MyResource1 的物件 r1,然後再 try 區塊裡印出 "Do something…" 的字串。然後下面就是程式執行的結果:

Java 會先執行第7行,印出 "Do something…"後,離開 try 區塊時會去關閉實作 java.lang.AutoCloseable 的 MyResource1 物件,而在 MyResource1.close 的方法裡我們請 Java 印出 "Close resource 1"。因為我們沒有 catch 區塊來補捉 close 方法可能丟出來的例外,所以我們要在 main 方法的宣告上多宣告會丟出 Exception 例外!

這樣是不是有點初步的概念了呢!


上一篇
Project Coin - try-with-resource 語法
下一篇
Project Coin - try-with-resource 語法 續2
系列文
實戰 Java SE 7 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言